/**
 * @Author：ming
 * @Date：2023/9/27 7:10 PM
 * @Filename：Lc54
 */

import java.util.ArrayList;
import java.util.List;

/**
 * @author ming
 */
public class Lc54 {
    public List<Integer> spiralOrder(int[][] matrix) {
        int t=0;
        int b= matrix.length-1;
        int l =0;
        int r = matrix[0].length-1;
        List<Integer> list = new ArrayList<>();

        while (l<r&&t<b){
            //顺行
            for (int i = l; i <= r; i++) {
                list.add(matrix[t][i]);
            }
            t++;
            if(t==b){
                break;
            }
            //顺列

            for (int i = t; i <= b; i++) {
                list.add(matrix[i][r]);
            }
            r--;
            if(r==l){
                break;
            }

            //倒行
            for (int i = r; i >=l ; i--) {
                list.add(matrix[b][i]);
            }

            b--;
            if(b==t){
                break;
            }

            //倒列
            for (int i = b; i >=t ; i++) {
                list.add(matrix[i][l]);
            }
            l++;
            if(l==r){
                break;
            }

        }

        return list;

    }
}
